"use strict";

const chai = require( "chai" );
const helpers = require( "./helpers" );
const pass = require( "pegjs" ).compiler.passes.check.reportUndefinedRules;

chai.use( helpers );

const expect = chai.expect;

describe( "compiler pass |reportUndefinedRules|", function () {

    it( "reports undefined rules", function () {

        expect( pass ).to.reportError( "start = undefined", {
            message: "Rule \"undefined\" is not defined.",
            location: {
                start: { offset: 8, line: 1, column: 9 },
                end: { offset: 17, line: 1, column: 18 },
            },
        } );

    } );

    it( "checks allowedStartRules", function () {

        expect( pass ).to.reportError(
            "start = 'a'",
            {
                message: "Start rule \"missing\" is not defined.",
            },
            {
                allowedStartRules: [ "missing" ],
            },
        );

    } );

} );
